In today's market there are many applications that could add value to a wireless device. These applications include security programs, multimedia display programs, interactive entertainment programs, enterprise applications, and financial applications, just to name a few. Once installed, in order to be used effectively these applications have to be configured remotely or locally, and in some instances, run at certain times or with various inputs. Unfortunately, users cannot be counted on to run these programs consistently, problems can arise with local configuration, and these applications were not designed for remote management over a wireless link and lack the interface logic to communicate over-the-air.
Conventional applications can be run and configured from the user interface. Any application on a desktop computing device or a mobile device provides a user interface such as an options tab or configuration tabs that allow the user to set parameters that change the default behavior of the application. Allowing the user to change the configuration of applications, while convenient, is beset with problems, particularly for mobile devices. Manual changes are error prone, and applications that are mis-configured by the user require costly intervention by customer service help or IT help desk personnel. Additionally, when a user changes the settings it will not be possible to ensure that the application behavior on all devices conforms to a set policy, or to guarantee that the programs will be run appropriately once they are installed and configured. Furthermore, by their very nature mobile devices travel with users and when a mis-configuration or error occurs the device may not be near any help desk or IT personnel who can physically come and set the correct configurations.
Hence, there is a need to allow remote management of applications by an authorized server, including starting an application, stopping an application, invoking a command provided by the application, and configuring an application. Remote application management allows service providers and enterprises to set policies for the behavior of applications. A management server can control application behavior according to policy files or configuration files. The capability of modifying application behavior from a remote authorized server enables automatic policy-based application settings on all or a portion of wireless devices. This avoids errors, policy violations, and/or mis-configurations that are bound to happen during a manual configuration.
Dynamic link libraries (DLL) have been used to extend the functionality of applications. Dynamic link libraries offer a mechanism by which application functionality can be changed without having to change the application itself. Further, a shared DLL can be used by several applications without having to include the library in each application.